package vista.objetos;

import vista.ventanas.VentanaAtributo;
import logica.Atributo;
import logica.AtributoCompuesto;
import logica.AtributoRepetidoException;
import logica.SinNombreException;

public class FabricaAtributoCompuesto extends FabricaAtributo{

	@Override
	public Atributo crearAtributo(VentanaAtributo ventana) throws SinNombreException, NumberFormatException, AtributoRepetidoException, AtributoCompuestoException
	{
		AtributoCompuesto atributo = new AtributoCompuesto(ventana.getNombreAtributo());

		atributo.setCardinalidadMin(this.getCardinalidad(ventana.getCardinalidadMin()));
		atributo.setCardinalidadMax(this.getCardinalidad(ventana.getCardinalidadMax()));
		
		if (ventana.getAtributos().size() < 2)
			throw new AtributoCompuestoException("Un atributo compuesto debe estar al menos compuesto por dos atributos simples");

		atributo.agregarAtributos(ventana.getAtributos());

		return atributo;
	}

}
